import { fileURLToPath, URL } from 'node:url'

import { prismjsPlugin } from 'vite-plugin-prismjs';
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import CompressionPlugin from 'compression-webpack-plugin';
import viteCompression from 'vite-plugin-compression';
// https://vite.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    prismjsPlugin({
      languages: 'all', // 语言
      plugins: ['line-numbers', 'copy-to-clipboard'], //官网有其他功能,这里开启行数和复制按钮功能
      theme: 'okaidia', // 主题
      css: true,
    }),
    viteCompression({
      algorithm: 'brotliCompress', // 使用 Brotli 压缩算法
      threshold: 10240, // 设置文件大小的阈值，单位为字节
      ext: '.br', // 输出的压缩文件扩展名
    })
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  server: {  
    proxy: {  
      '/api': {  
        target: 'http://localhost:63040', // 后端服务器的地址  
        changeOrigin: true,  
        rewrite: (path) => path.replace(/^\/api/, '')  
      }
    },

 
  },
  build: {
    // 其他配置...
    plugins: [
      new CompressionPlugin({
        algorithm: 'gzip',
        test: /\.js$|\.css$|\.html$/, // 匹配文件类型
        threshold: 10240, // 文件大小超过 10KB 时进行压缩
        minRatio: 0.8, // 压缩比率
      })
    ]
  }
})